/**
 * 页面中复用的数据和逻辑
 */
import { findBanner } from '@/api/home.js'
import { ref, onMounted } from 'vue'
import { useCountDown } from '@/hook/index.js'
import schema from '@/utils/vee-validate-schema.js'
import Message from '@/components/Message/index.js'

export function useBanner () {
  const data = ref([])
  const getBannrUrl = async () => {
    const res = await findBanner()
    console.log(res.result)
    data.value = res.result
  }
  onMounted(() => {
    getBannrUrl()
  })
  return { data }
}
// 发送验证码
export const useSendCode = (formData, fm, sendCodeApi) => {
  const { count, start } = useCountDown(60)
  /**
 * 步骤:
 * 1.引入倒计时方法
 * 2.定义发短信的事件回调函数
 *    1.校验手机号对不对
 *    2.如果手机号正确,还要确保60s范围之外才能发送
 * 3.调用接口发送
 */
  // 点击事件的回调
  const send = async () => {
    // 不走表单,单独使用schema的校验函数
    const valid = schema.mobile(formData.mobile)
    if (valid === true) {
      // 校验通过&&没有开始倒计时
      if (count.value === 0) {
        await sendCodeApi(formData.mobile)
        Message({ type: 'success', text: '短信发送成功' })
        // 调用成功开始进行到计时
        start()
      }
    } else {
      // 校验失败=>触发显示错误信息
      fm.value.setFieldError('mobile', valid)
    }
  }
  return { count, send }
}
